[MFC]在程序中访问对话框中的控件

您所在的位置:网站首页 mfc 参数 [MFC]在程序中访问对话框中的控件

[MFC]在程序中访问对话框中的控件

2023-09-04 04:59| 来源: 网络整理| 查看: 265

1. 使用GetDlgItem函数来访问对话框中的控件:

    1) 函数原型:CWnd* CWnd::GetDlgItem(int nID) const;

    2) 只要参数指定为要访问的控件的ID,即可返回该控件的指针,但要注意的是返回的是CWnd*类型的指针,是所有窗口类型的父类;

2. 安全地利用GetDlgItem返回的指针来访问控件:

    1) 如果想访问的是CWnd就有的功能则可以不做任何处理直接访问,例如:

CWnd* pWnd = GetDlgItem(IDC_CHECK); pWnd->EnableWindow(TRUE);!由于使控件(或窗口)有效的函数EnableWindow直接继承自CWnd,因此可以不做任何处理放心地使用;

    2) 拙劣而危险的用法——强类型转换:

         i. 如果想访问控件特有的功能,则可以尝试将GetDlgItem的返回值强制转换为控件所对应的类型,例如:

CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST); pListBox->AddString(_T("One"));         ii. 上面的代码之所以可以运行那是因为MFC对CListBox这种控件有特殊的支持,换做其它的,例如CComboBox就会失效!!

         iii. 绝对不推荐用这种方法来访问控件的特有功能



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3